package com.iot08.common.entity.app;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author cwj
 * @description 订单退款信息
 * @date 2025/1/23 15:24
 **/
@Data
@Document("order_refund_info")
public class OrderRefundInfo implements Serializable {

    @Id
    private String id;

    //退款类型，alipay、wechatPay、applePay
    private String fefundType;

    //支付退款单号
    private String refundId;

    //支付订单号
    private String transactionId;

    //商户订单号
    private String outTradeNo;

    //退款渠道
    private String refundChannel;

    //退款入账账户
    private String userReceivedAccount;

    //退款成功时间
    private String refundSuccessTime;

    //退款申请成功受理（成功创建）的时间
    private String refundCreateTime;

    //退款状态（SUCCESS（退款成功）/CLOSED（退款关闭）/PROCESSING（退款处理中）/ABNORMAL（退款异常）/OPERATION（运营账户）/BASIC（基本账户（含可用余额和不可用余额））/ECNY_BASIC（数字人民币基本账户））
    private String status;

    //退款所使用资金对应的资金账户类型（UNSETTLED（未结算资金）/AVAILABLE（可用余额）/UNAVAILABLE（不可用余额））
    private String fundsAccount;

    //订单总金额
    private BigDecimal total;

    //退款金额
    private BigDecimal refund;

    //用户实际支付金额
    private BigDecimal payerTotal;

    //用户实际退款金额
    private BigDecimal payerRefund;

    //应结退款金额（去掉免充值代金券退款金额后的退款金额）
    private BigDecimal settlementRefund;

    //应结订单金额（去除免充值代金券金额后的订单金额）
    private BigDecimal settlementTotal;

    //优惠退款金额，申请退款后用户收到的代金券退款金额
    private BigDecimal discountRefund;

    //退款币种
    private String currency;

    //退款手续费
    private BigDecimal refundFee;

}
